package com.blue.http.invoke;

import com.blue.http.message.HttpRequest;
import com.blue.http.message.HttpResponse;
import com.blue.http.util.HttpException;

/**
 * HTTP 调用过滤链
 * 
 * @author zhengj
 * @since 1.0 2017年3月1日
 */
public interface InvokerFilter
{
	/**
	 * 预处理HTTP信息
	 * 
	 * @param request 可修改的HTTP请求参数
	 * @param response HTTP响应内容
	 * @return true表示可以调用下一个过滤链，false表示中断过滤链调用
	 * @throws HttpException 有错误时抛出
	 */
	boolean preHandle(HttpRequest request, HttpResponse response) throws HttpException;
	
	/**
	 * 后处理HTTP信息
	 * 
	 * @param request 可修改的HTTP请求参数
	 * @param response HTTP响应内容
	 * @throws HttpException 有错误时抛出
	 */
	void afterHandle(HttpRequest request, HttpResponse response) throws HttpException;
	
}
